package com.shunya.diskorganizer.tinytypes;

/**
 * <p>
 * A value type is a <i>fungible</i> type, as in, one instance is equivalent to another if the value
 * of the two objects are equal. For example, two bank notes can be exchanged if they have the same
 * denomination; their value is the same even though their individual serial numbers are different.
 * </p>
 * @param <T> the type the value object represents
 */
//@Immutable
public interface ValueType<T> extends NullObject {

    T value();

    boolean isValid();

}